package com.huawei.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.huawei.bean.MUserInfoBean;


import com.huawei.db.DBProvider;
import com.huawei.utils.EasyFactory;
import com.huawei.utils.MyUtils;



import com.huawei.bean.userInfoBean;
import com.huawei.db.DBProvider;
import com.huawei.utils.EasyFactory;
import com.huawei.utils.MyUtils;

public class MUserInfoModel {

	/**
	 * 登录信息查询
	 * 
	 * @param muserInfoB 登录信息参数实体类
	 * @return 查询结果集
	 */
	public List<MUserInfoBean> queryLoginInfo(MUserInfoBean muserInfoB) {
		// 拼写登录查询的sql语句
		String strSql = "select * from m_userinfo where muser_name = ? and muser_password= ? ";
		// 执行查询，获取查询结果集（List+Bean）
		List<MUserInfoBean> lst = EasyFactory.getNewInstance(DBProvider.class).query(strSql,
				new BeanListHandler<MUserInfoBean>(MUserInfoBean.class), muserInfoB.getMuser_name(),
				muserInfoB.getMuser_password() );
		// 返回查询结果集
		return lst;
	}

	/**
	 * 新增或修改用户信息 
	 * 【如果参数实体的主键值不为null，则是进行修改操作，如果为null，则是进行新增操作】
	 * 
	 * @param userInfoB 用户信息实体类
	 * @return 处理结果
	 */
	public int saveOrUpdateMUserInfo(MUserInfoBean muserInfoB) {
		// 默认返回值
		int i = 0;
			// 拼写新增用户信息的sql
			String strSql = " insert into  m_userInfo(muser_name,muser_password) values(?,?) ";
			// 调用数据库驱动类，进行表数据新增操作
			i = EasyFactory.getNewInstance(DBProvider.class).update(strSql,
					new Object[] { muserInfoB.getMuser_name(), muserInfoB.getMuser_password() 
							});
		
		return i;
	}

	
	/**
	 * 查询所有的用户信息
	 * 
	 * @return 查询结果集
	 */
	public List<MUserInfoBean> queryAllMUserInfo() {
		// 拼写登录查询的sql语句
		String strSql = " select * from m_userinfo order by muser_id desc ";
		// 执行查询，获取查询结果集（List+Bean）
		List<MUserInfoBean> lst = EasyFactory.getNewInstance(DBProvider.class).query(strSql,
				new BeanListHandler<MUserInfoBean>(MUserInfoBean.class));
		// 返回查询结果集
		return lst;
	}
	
	/**
	 * 根据过滤条件查询用户信息
	 * 
	 * @return 查询结果集
	 */
	public List<userInfoBean> queryUserInfoByParams(userInfoBean userInfoB) {
		// 拼写登录查询的sql语句
		StringBuilder sbSql = new StringBuilder(" select * from userinfo where 1=1 ");
		// 使用list存储sql的？占位符的条件参数
		List<Object> lstParams = new ArrayList<>();

		if (userInfoB != null) {
			// 动态拼写Sql条件
			System.out.println("1111111");
			String strUserPhone = userInfoB.getUser_phone();
			if (strUserPhone != null && !strUserPhone.equals("")) {
				// 如果用户名不为空，则条件用户名查询过滤条件
				System.out.println("222222");
				sbSql.append(" and user_phone like ? ");
				// 同时对应添加查询条件集合
				lstParams.add("%" + strUserPhone + "%");
			}

	
		
		}
		// 拼接排序条件
		sbSql.append(" order by user_id desc ");

		// 执行查询，获取查询结果集（List+Bean）
		List<userInfoBean> lst = EasyFactory.getNewInstance(DBProvider.class).query(sbSql.toString(),
		new BeanListHandler<userInfoBean>(userInfoBean.class), lstParams.toArray());

		// 返回查询结果集
		return lst;
				
			}

	
	}


